#include <iostream>
#include <queue>
#include <map>
#include <unordered_map>
#include <vector>
#include <algorithm>
#include <cmath>
#include <string>
#include <cstring>
#include <set>
#include <unordered_set>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
const int INF=0x3f3f3f3f;
const int N=1e6+10;
int b[N];
int main()
{
	int t;
	cin>>t;
	while(t--)
	{
		int n;
		cin>>n;
		for(int i=1;i<=n;i++)
		{
			scanf("%d",b+i);
		}
		int f=0;
		for(int i=1;i<=n;i++)
		{
			if(f==0 && b[i]!=i)
			{
				f=1;
			}
			else if(f==1 && b[i]==i)
			{
				f=2;
			}
			else if(f==2 && b[i]!=i)
			{
				f=3;
			}
		}
		if(f==0)
		{
			cout<<0;
		}
		else if(f==1 || f==2)
		{
			cout<<1;
		}
		else if(f>2)
		{
			cout<<2;
		}
		cout<<endl;
		
	}

	return 0;
}

